package com.billdowney.util.network;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.Header;
import org.apache.http.HttpMessage;

import com.billdowney.util.CommonUtil;

/**
 * @Description: http请求工具类
 * @author: 唐路钧
 * @date: 2018年9月18日 下午3:34:33
 */
public class HttpHeaderUtil {

	public static void main(String[] args) {
		String value = "attachment; filename=\"792e8b4e9587cfdb66b433e5fc7959d1.jpg\"";
		value = "attachment;filename=104b922efc6249fd9caed077fafbc1ab.png";
		String[] values = value.split("=");
		for (String string : values) {
			System.out.println(string.replace("\"", "").trim());
		}
		// System.out.println(getFileName(null));
	}

	/**
	 * @Description: 传入HttpRequest或HttpResponse来获取文件名
	 * @param httpMessage
	 * @return 匹配到的文件名
	 * @author: 唐路钧
	 * @date: 2018年9月18日 下午3:41:07
	 */
	public static String getFileName(HttpMessage httpMessage) {
		String fileName = "";
		List<String> values = getHeaderValues(httpMessage, "Content-Disposition");
		for (String value : values) {
			String[] name = value.split("=");
			if (name.length > 1) {
				fileName = name[1].replace("\"", "").trim();
			}
		}
		return fileName;
	}

	/**
	 * @Description: 传入HttpRequest或HttpResponse来获取内容长度
	 * @param httpMessage
	 * @return 获取的内容长度
	 * @author: 唐路钧
	 * @date: 2018年9月19日 下午8:58:45
	 */
	public static long getContentLength(HttpMessage httpMessage) {
		return 0;
	}

	/**
	 * @Description: 传入头字段来获取值
	 * @param httpMessage
	 * @param headerName  头字段名称
	 * @return 获取到的值数组
	 * @author: 唐路钧
	 * @date: 2018年9月19日 下午9:02:05
	 */
	public static List<String> getHeaderValues(HttpMessage httpMessage, String headerName) {
		List<String> values = new ArrayList<>();
		Header[] headers = httpMessage.getHeaders(headerName);
		if (CommonUtil.isNotEmpty(headers)) {
			for (Header header : headers) {
				values.add(header.getValue());
			}
		}
		return values;
	}

}
